﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SIGCBI.Repository;
using SIGCBI.Entities;

namespace SIGCBI.Test.Mantenimientos
{
    [TestClass]
    public class ProveedorTest
    {
        [TestMethod]
        public void GetAllFromProveedor()
        {
            ProveedorRepository repository = new ProveedorRepository();
            List<PROVEEDOR> actual;
            actual = repository.GetAllFromProveedor();
            Assert.IsTrue(actual.Count > 0);
        }

        [TestMethod]
        public void GetFromProveedorById()
        {
            ProveedorRepository repository = new ProveedorRepository();
            PROVEEDOR actual;
            string ruc = "10471682735";
            actual = repository.GetFromProveedorByRuc(ruc);
            Assert.IsTrue(actual.ID == 2);
        }

        [TestMethod]
        public void GetAllFromProveedorByDescripcion()
        {
            ProveedorRepository repository = new ProveedorRepository();
            List<PROVEEDOR> actual;
            var criterio = "DANY";
            actual = repository.GetFromProveedorByDescripcion(criterio);
            //Assert.IsTrue(actual.Count >= 1);
            Assert.IsNotNull(actual);
        }

        [TestMethod]
        public void AddProveedor()
        {
            ProveedorRepository repository = new ProveedorRepository();
            var ListEsperado = (List<PROVEEDOR>)repository.GetAllFromProveedor();
            PROVEEDOR Newproveedor = new PROVEEDOR()
            {
                Ruc = "10471682735",
                RazonSocial = "DANY VALDIVIA HUAMAN",
                Direccion = "CAJAMARCA",
                Telefono = "966739761"
            };
            repository.AddProveedor(Newproveedor);
            var ListaCTUAL = (List<PROVEEDOR>)repository.GetAllFromProveedor();
            Assert.AreEqual(ListEsperado.Count + 1, ListaCTUAL.Count, "Registro Correcto ");
        }

        [TestMethod]
        public void UpdateProveedor()
        {
            ProveedorRepository repository = new ProveedorRepository();
            var id = 1;
            string ruc = "10471682735";
            var RazonSocial = "DANY VALDIVIA HUAMAN";
            PROVEEDOR proveedor = new PROVEEDOR()
            {
                ID = id,
                Ruc = "10471682735",
                RazonSocial = RazonSocial,
                Direccion = "CAJAMARCA -PERU",
                Telefono = "966739761"
            };
            repository.UpdateProveedor(proveedor);
            var existe = repository.GetFromProveedorByRuc(ruc);
            Assert.IsTrue(existe.RazonSocial == RazonSocial);
        }

        [TestMethod]
        public void RemoveProveedor()
        {
            ProveedorRepository provDAO = new ProveedorRepository();
            string ruc = "10471682735";
            var id = 1;
            provDAO.RemoveProveedor(id);
            var existe = provDAO.GetFromProveedorByRuc(ruc);
            Assert.IsTrue(existe == null);

        }
    }
}
